-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

=============================================================================
FreeBSD-EN-09:01.kenv                                           Errata Notice
                                                          The FreeBSD Project

Topic:          Kernel panic when dumping environment

Category:       core
Module:         kern
Announced:      2009-03-23
Affects:        FreeBSD 7.x
Corrected:      2009-03-23 00:00:50 UTC (RELENG_7, 7.2-PRERELEASE)
                2009-03-23 00:00:50 UTC (RELENG_7_1, 7.1-RELEASE-p4)
                2009-03-23 00:00:50 UTC (RELENG_7_0, 7.0-RELEASE-p11)

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit <URL:http://security.FreeBSD.org/>.

I.   Background

The kenv(2) system call allows userland processes to get, set, and unset
kernel environment variables, as well as to dump all of the entries in
the kernel environment.

II.  Problem Description

When dumping all of the entries in the kernel environment, the kernel
does not adequately bounds-check the size of the buffer into which the
environment should be written.

III. Impact

An unprivileged process can cause the FreeBSD kernel to attempt to
allocate a very large amount of memory, thereby causing the FreeBSD
kernel to panic.

IV.  Workaround

No workaround is available, but systems without untrusted local users
are not vulnerable.

V.   Solution

Perform one of the following:

1) Upgrade your vulnerable system to 7-STABLE, or to the RELENG_7_1
or  RELENG_7_0 security branch dated after the correction date.

2) To patch your present system:

The following patch has been verified to apply to FreeBSD 7.0 and 7.1
systems.

a) Download the patch from the location below, and verify the
detached PGP signature using your PGP utility.

# fetch http://security.FreeBSD.org/patches/EN-09:01/kenv.patch
# fetch http://security.FreeBSD.org/patches/EN-09:01/kenv.patch.asc

b) Apply the patch.

# cd /usr/src
# patch < /path/to/patch

c) Recompile your kernel as described in
<URL:http://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the
system.

VI.  Correction details

The following list contains the revision numbers of each file that was
corrected in FreeBSD.

CVS:

Branch                                                           Revision
  Path
- -------------------------------------------------------------------------
RELENG_7
  src/sys/kern/kern_environment.c                                1.47.2.1
RELENG_7_1
  src/UPDATING                                             1.507.2.13.2.7
  src/sys/conf/newvers.sh                                    1.72.2.9.2.8
  src/sys/kern/kern_environment.c                                1.47.6.2
RELENG_7_0
  src/UPDATING                                             1.507.2.3.2.15
  src/sys/conf/newvers.sh                                   1.72.2.5.2.15
  src/sys/kern/kern_environment.c                                1.47.4.1
- -------------------------------------------------------------------------

Subversion:

Branch/path                                                      Revision
- -------------------------------------------------------------------------
stable/7/                                                         r190301
releng/7.1/                                                       r190301
releng/7.0/                                                       r190301
- -------------------------------------------------------------------------

VII. References

The latest revision of this advisory is available at
http://security.FreeBSD.org/advisories/FreeBSD-EN-09:01.kenv.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEUEARECAAYFAknG0gwACgkQFdaIBMps37ILlwCfcbVKW5FlPK+GtATY34wfkDWr
5tAAmMteIrkXAeBgp3QNI6pFiHzgunE=
=wJeF
-----END PGP SIGNATURE-----
